var loginValidator = (function () {

    var reqHttp, fazRequisicao, addInputError, removeInputError, addInputSuccess,
        removeInputSuccess, resetInput;
    
    fazRequisicao = function (URL, callback) {
        
        if (window.XMLHttpRequest) {
            reqHttp = new XMLHttpRequest();
        } else if (window.ActiveXObject) {
            
            try {
                reqHttp = new ActiveXObject("Msxml12.XMLHTTP");
            } catch (e) {
                try {
                    reqHttp = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (err) {
                    console.log("Não foi possível criar o objeto de de requisição http");
                }
            }
        }
    
        if (!reqHttp) {
            console.log('Não foi possível criar a requesição');
            return false;
        }
    
        reqHttp.onreadystatechange = callback;
        reqHttp.open('GET', URL);
        reqHttp.send();
        
        return true;
    }
    
    addInputError = function () {
        $("#cad-login").addClass('error');
        $("#login-help").text("Login não disponível");
    }
    
    removeInputError = function () {
        $("#cad-login").removeClass("error");
        $("#login-help").text("");
    }
    
    addInputSuccess = function () {
        $("#cad-login").addClass("success");
        $("#login-help").text("");
    }
    
    removeInputSuccess = function () {
        $("#cad-login").removeClass("success");
    }
    
    resetInput = function () {
        $("#cad-login").removeClass("success");
        $("#cad-login").removeClass("error");
        $("#login-help").text("");
    }
    
    return{
        
        checkLoginName : function () {
            var login = document.getElementById("input1").value;
            var URL  = "DoesUserExist.php?uid="+login;
        
            if (login.length > 0) {
            
                fazRequisicao(URL, function () {
                
                    if (reqHttp.readyState === 4) {
                    
                        if (reqHttp.status === 200) {
                        
                            if (reqHttp.responseText === 'true') {      
                                removeInputSuccess();
                                addInputError();
                            } else {
                                removeInputError();
                                addInputSuccess();
                            }
                        } else {
                            console.log("Erro na requisição");
                        }
                    }
                });
            } else {
                resetInput();
            }
        }
    }
})();